O registo e o LMS da UniLearn não contêm os mesmos IDs de estudantes. A equipa precisa de vários relatórios, cada um com uma resposta diferente para «Que linhas de origem devem aparecer?»
Reutilize a Base de Dados do Laboratório 6
Se já executou lab6_7_setup.sql no Laboratório 6, mantenha esses dados. Caso contrário, abra no pgAdmin o ficheiro de configuração partilhado fornecido pelo seu tutor e execute-o uma vez. Selecione lab6_7 em cada nova ligação da Query Tool.
Comece com o Join que Já Conhece
- Inspecione
studentselms_roster: 22 IDs do registo e 6 IDs do LMS. - Execute o INNER JOIN da regra de correspondência do Laboratório 6.
- Identifique os quatro IDs presentes em ambas as origens.
- Explique por que este resultado não pode ser uma lista completa de nenhuma das origens.
Cinco Pedidos de Relatório
Liste as contas partilhadas; mantenha todos os estudantes do registo; mantenha todas as contas do LMS; reconcilie ambas as origens; gere opções de estudante–curso. Irá escrever consultas INNER, LEFT, RIGHT, FULL e CROSS JOIN para estes pedidos.
SET search_path TO lab6_7;
SELECT s.student_id AS registry_id, s.student_name,
r.student_id AS lms_id, r.lms_name
FROM students AS s
INNER JOIN lms_roster AS r
ON s.student_id = r.student_id
ORDER BY s.student_id;Verifique os IDs correspondidos
Quatro linhas: S101, S102, S105 e S121. Cada ID é único em ambas as tabelas, pelo que cada par correspondido aparece uma vez. Este relatório contém apenas contas partilhadas.
A Uma (S121) tem uma conta no LMS, apesar de não ter inscrições. Uma correspondência de conta não prova a participação num curso.
Inspecione Ambas as Origens
O roster do LMS é uma importação não validada. Intencionalmente, não tem chave externa para students, pelo que S901 e S902 só podem existir nessa origem.
SET search_path TO lab6_7;
SELECT student_id, student_name
FROM students
ORDER BY student_id;
SELECT student_id, lms_name
FROM lms_roster
ORDER BY student_id;| ID do LMS | Nome no LMS | No registo? |
|---|---|---|
| S101 | Alice Wong | Sim |
| S102 | Ben Lau | Sim |
| S105 | Emma Li | Sim |
| S121 | Uma Shah | Sim |
| S901 | Visitante Importado A | Não |
| S902 | Visitante Importado B | Não |
A configuração partilhada também contém 8 cursos, 37 inscrições, 8 trabalhos e 30 submissões para tarefas posteriores. Todos os registos são fictícios.
Leia o Pedido Antes de Escolher um Join
| Pedido | Resultado pretendido |
|---|---|
| Contas partilhadas | Apenas pares de IDs que correspondem. |
| Cobertura do registo | Todos os estudantes do registo, mesmo sem conta no LMS. |
| Auditoria da importação do LMS | Todas as contas do LMS importadas, mesmo sem correspondência no registo. |
| Reconciliar ambos os sistemas | Contas partilhadas e registos encontrados apenas numa das origens. |
| Planeamento de cursos | Todos os estudantes selecionados emparelhados com todos os cursos selecionados. |
O Laboratório 6 estabeleceu como os pares correspondidos formam linhas. Neste laboratório, altere o tipo de join para controlar as linhas sem correspondência ou gerar todas as combinações e, em seguida, verifique o que cada linha de resultado representa.